package exception;

/**
 * java异常处理机制中的try-catch
 * 语法
 * try{
 *     可能出现异常的代码片段
 * }catch(xxxxexception e){
 *     当try中出现xxxException后的解决办法
 * }
 * try语句块不能对存在,后面必须跟catch或finally
 */
public class TryCatchDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了");
        try{
            String str="a";
            //这里会出现空指针异常,虚拟机实例化空指针异常实力并在这里抛出
            System.out.println(str.length());
            //这里会出现下标越界异常,虚拟机并在这里抛出
            System.out.println(str.charAt(0));

            System.out.println(Integer.parseInt(str));
            //try语句块中某句报错后,那么try语句块中这句话之后的代码均不会执行
            System.out.println("!!!!!!!");

//        }catch (NullPointerException e){
//            System.out.println("出现了空指针,并在这里得以解决");
//            //catch可以定义多个,针对不同的异常有不同处理办法是,可以分别捕获并处理.
//        }catch (StringIndexOutOfBoundsException e){
//            System.out.println("出现了字符串下标越界了!并在这里得以解决");
        }catch (NullPointerException|StringIndexOutOfBoundsException e){
            System.out.println("出现了空指针或下标越界的处理");
        }catch (Exception e){
            System.out.println("反正就是出了个错");
        }
        System.out.println("程序结束了");
    }

}
